package test01.demo02;

/**
 * 对等级进行封装的一个类 - 表达等级只能是 A B C D E 五种状态
 *
 * @author ZQX
 * @date 2025-04-09
 */
public class Grade {
    /**
     * 各等级字符串的表示
     */
    private String value;

    // 私有化构造方法，不允许在类外实例化对象
    private Grade() {
    }

    private Grade(String value) {
        this.value = value;
    }

    // 在类内部，实现化五个对象 - 预设五个状态 - 用户只能从这个五个状态选择赋值
    // 预设的值 - 枚举
    public static final Grade A = new Grade("优秀");
    public static final Grade B = new Grade("良好");
    public static final Grade C = new Grade("中等");
    public static final Grade D = new Grade("合格");
    public static final Grade E = new Grade("不合格");
    public static final Grade F = new Grade("未知状态");

    @Override
    public String toString() {
        return this.value;
    }
}
